package com.rose.springbootgeneratefile.api;

import com.rose.springbootgeneratefile.api.dom.java.CompilationUnit;
import com.rose.springbootgeneratefile.api.dom.java.Field;
import com.rose.springbootgeneratefile.api.dom.java.Method;
import com.rose.springbootgeneratefile.api.dom.java.TopLevelClass;

/**
 * 此接口的实现用于生成各种工件的注释
 */
public interface CommentGenerator {

    void addJavaFileComment(CompilationUnit compilationUnit);

    void addModelClassComment(TopLevelClass topLevelClass,
                              IntrospectedTable introspectedTable);

    void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable);

    void addFieldComment(Field field,
                         IntrospectedTable introspectedTable,
                         IntrospectedColumn introspectedColumn);

    void addGetterComment(Method method,
                          IntrospectedTable introspectedTable,
                          IntrospectedColumn introspectedColumn);

    void addSetterComment(Method method,
                          IntrospectedTable introspectedTable,
                          IntrospectedColumn introspectedColumn);
}
